package cn.iocoder.yudao.module.system.controller.admin.config.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotNull;
import java.util.Map;

@Schema(description = "管理后台 - Look-IM系统配置保存 Request VO")
@Data
public class SystemConfigSaveReqVO {

    @Schema(description = "系统信息配置", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "系统信息配置不能为空")
    private Map<String, Object> sysInfo;

    @Schema(description = "聊天配置", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "聊天配置不能为空")
    private Map<String, Object> chatInfo;

    @Schema(description = "文件上传配置", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "文件上传配置不能为空")
    private FileUploadConfigVO fileUpload;

    @Schema(description = "罗盘配置", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "罗盘配置不能为空")
    private Map<String, Object> compass;

    @Schema(description = "文件上传配置")
    @Data
    public static class FileUploadConfigVO {
        @Schema(description = "文件大小限制")
        private String size;

        @Schema(description = "预览设置")
        private String preview;

        @Schema(description = "允许的文件扩展名")
        private Object fileExt;
    }
}